Communication networks typically involve transferring information between nodes connected in the network by at least one communication bus. Information is transferred from one node to another node via the physical medium according to a communication protocol. Such a protocol is the Control Area Network (CAN) protocol used for example in automotive applications. Different protocols might be used on different buses within the same network to have the best match to a particular communication need.
Often, there are multiple, independent communication busses in such applications. The busses are connected to each other via an information controller interface or gateway device. Information is transferred from one bus to another bus (or back to the same bus) via the gateway in information units, usually referred to as message frames. Each frame consists of a data part containing the information to be transferred; a frame identifier and optional ancillary information. The ancillary information is used to attain complete error-free transmissions and requires the transfer of a fixed amount of extra information bits per frame, ie CRC, bit-stuffing etc. For example in CAN automotive networks, a frame comprises of a data part of between 0 and 8 bytes of information.
To minimise the overhead from identifiers and ancillary data, using the maximum data part per frame is required. This is achieved by a node, through the packing of several constituent pieces of data into one frame data part. Each one of these atomic data sets of is called a signal. For example, in the CAN protocol, a frame comprises of a data part of between 0 and 8 bytes of information. Each data set or signal within that data part may have differing lengths from 1 to 64 bits, upto a cumulative maximum of 64 bits. The frames are transmitted with pre-defined identifiers upon which when received at the gateway or a node, the identifier determines the position and size of all the signals within the frame. An issue of this method is that the data sets within a frame may start at any bit position and are often crossing byte boundaries. Extraction and further processing of this data must take this into account and provide the needed computation power. Consequently, when a gateway device has to transfer a data set from one bus to another, a repeating series of activities has to be performed. The typical steps involved are, establishing the size and positions of the data sets from the frame identifier; unpacking the frame into it's data sets; transposing the data sets as required; packing the data sets into another, new or already created frame; and finally transmitting the frames to their destination bus as required. Executing these operations has typically been accomplished with software requiring extensive memory for the software programs, and placing high demands on the central processor unit (CPU) and supporting hardware. As the number of signals increases the CPU processing power required increases and also results in increased message latency and more frequent CPU interrupts and loading. Attempts have been made, for example WO99/34560, to provide a message bridge to transfer complete frames between CAN busses, however, these systems are still memory intensive, and still demand CPU time.
Thus, there is a need for an information communication controller interface or gateway device and method that efficiently controls the communication and transfer of signal based messages for faster operations minimises at least message latency, memory requirements, or CPU interrupts and loading.